package setof.collection.list;

import java.util.*;

/*
List:
        add():添加(指定位置)元素
        set():修改指定索引元素
        get():获取索引元素
        remove():移除元素

   遍历方式:在通用方法以外
            1.普通for循环
            2.listIterator迭代器,用法类似Iterator迭代器
    os:.listIterator迭代器,还可以使用previous(),hasPrevious()可以倒序遍历,但是使用倒序遍历前,应该先正序遍历

   并发修改异常:在使用迭代器遍历时,调用集合的增加,删除方法会出现错误
         解决:使用迭代器的添加,删除方法

数据结构:
        栈:先进后出,栈顶进,栈顶出
        队列:先进先出,后端进,前端出
        数组:有索引,查询快,增删慢
        链表:{ 单向链表:每一个结点包含数据和下一个结点地址,增删较快,查找慢
               双向链表:每一个结点包含数据和指向前,后结点的地址,头尾增删快,查找慢
ArrayList:存取有序,有索引,可重复
        创建对象时,数组长度为0;使用add()后,数组长度为10;当存储不下时,自动扩容1.5倍
LinkedList:存取有序,有索引(根据索引,从头或尾遍历链表),可重复
        采用双向链表,首尾增删操作快
 */
public class ListOfCollectionDemo {
    public static void main(String[] args) {
        LinkedList<String>linkedList=new LinkedList<>();
        linkedList.addFirst("1");
        linkedList.addFirst("2");
        linkedList.addLast("3");
        linkedList.add("4");
        linkedList.add("5");
        linkedList.remove(0);
        System.out.println(linkedList);

    }

    private static void arraylistTest() {
        ArrayList<String>arrayList=new ArrayList<>();
        arrayList.add("aaa");
        arrayList.add("bbb");
        System.out.println(arrayList);
        String s = arrayList.get(0);
        System.out.println(s);
        arrayList.remove(1);
        System.out.println(arrayList);
    }

    private static void listDemo() {
        List<String> list=new ArrayList<>();
        list.add("saaa");
        list.add("sda");
        ListIterator<String> listIterator = list.listIterator();
        listIterator.add("ddd");
        System.out.println(1+" "+list);
        while (listIterator.hasNext()) {
            String s=listIterator.next();
            if (s.equals("sda")) {
                listIterator.remove();
                System.out.println(3+" "+list);
            }else {
                listIterator.add("hahah");
                System.out.println(2+" "+list);
            }
        }
        System.out.println(4+" "+list);
    }
}
